Exploiting Pointer and Location Equivalence to Optimize Pointer Analysis
نویسندگان
چکیده
Pointer information is a prerequisite for most program analyses, and inclusion-based, i.e. Andersen-style, pointer analysis is widely used to compute such information. However, current inclusion-based analyses can have prohibitive costs in time and space, especially for programs with millions of lines of code. We present a suite of offline optimizations that exploit pointer and location equivalence to shrink the input to the subsequent pointer analysis without affecting precision, dramatically reducing both analysis time and memory consumption. Using a suite of six open-source C programs ranging in size from 169K to 2.17M LOC, we demonstrate that our techniques on average improve analysis time by 1.3–2.7× and reduce memory consumption by 3.2–6.9× over the best current techniques.
منابع مشابه
Analyzing Millions of Lines of Code with Sparse Flow-Sensitive Pointer Analysis
Many program analyses perform better and produce more precise results when they are given precise pointer information. One dimension of precision is flow-sensitive pointer analysis (i.e., an analysis that respects a program’s control-flow), which has been shown to be useful for important applications such as program verification and understanding, among others. However, this type of pointer ana...
متن کاملA case report of notoedric mange infestation in a 3-month-old pointer
A 3-month-old short haired pointer with crusty local alopecia around the eyes was presented to SmallAnimal Hospital of Tehran University. Scraping and biopsy were obtained from lesions of affected area.Notoedres sp. was diagnosed in skin scraping by parasitologic examination. Furthermore, histopathology oflesions demonstrated moderate hyperplastic epidermis, parakeratosis and acanthosis.
متن کاملProgram decision logic optimization using predication and control speculation
The mainstream arrival of predication, a means other than branching of selecting instructions for execution, has required compiler architects to reformulate fundamental analyses and transformations. Traditionally, the compiler has generated branches straightforwardly to implement control flow designed by the programmer and has then performed sophisticated “global” optimizations to move and opti...
متن کاملExploiting Locality and Parallelism in Pointer-based Programs
While powerful optimization techniques are currently available for limited automatic compilation domains, such as dense array-based scientific and engineering numerical codes, a similar level of success has eluded general-purpose programs, specially symbolic and pointer-based codes. Current compilers are not able to successfully deal with parallelism in those codes. Based on our previously deve...
متن کاملMulti-Chain Prefetching: Exploiting Natural Memory Parallelism in Pointer-Chasing Codes
This paper presents a novel pointer prefetching technique, called multi-chain prefetching. Multi-chain prefetching tolerates serialized memory latency commonly found in pointer chasing codes via aggressive prefetch scheduling. Unlike conventional prefetching techniques that hide memory latency underneath a single traversal loop or recursive function exclusively, multi-chain prefetching initiate...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007